package com.glela.platform.service;

/**
 * 短信或语音
 * @author liujie
 */
public interface SmsService {
	/**
	 * 发送短信或语音
	 * @param mobile 手机号
	 * @param smsType 类型，见SmsConstant
	 * @param sendMode 发送方式，见SmsConstant
	 * @return
	 */
	public boolean sendVerifyCodeSms(String mobile,Integer smsType,Integer sendMode);
	/**
	 * 发送短信验证码
	 * @param mobile
	 * @param smsType
	 * @return
	 */
	public boolean sendTextVerifyCodeSms(String mobile,Integer smsType);
	/**
	 * 发送语音验证码
	 * @param mobile
	 * @param smsType
	 * @return
	 */
	public boolean sendVoiceVerifyCodeSms(String mobile,Integer smsType);
	/**
	 * 发送普通文字短信，指定内容
	 * @param mobile
	 * @param smsType
	 * @param content 内容
	 * @return
	 */
	public boolean sendTextSms(String mobile,Integer smsType,String content);
	
	/**
	 * 验证码检验
	 * @param mobile
	 * @param smsType
	 * @param inputCode 用户输入的验证码
	 * @return
	 */
	public boolean checkVerifyCode(String mobile,Integer smsType,String inputCode);
	
	/**
	 * 语音验证码开关
	 * @param key 业务key，见表c_flag
	 * @return
	 */
	public Integer getVoiceVerifyCodeStatus(String key);
	
	/**
	 * 删除验证码
	 * @param mobile
	 * @param smsType
	 */
	public void removeVerifyCode(String mobile,Integer smsType);
	
	/**
	 * 验证码校验，验证成功后删除验证码缓存！
	 * @param mobile
	 * @param smsType
	 * @param inputCode
	 * @param remove
	 * @return
	 */
	public boolean checkVerifyCode(String mobile,Integer smsType,String inputCode,boolean remove);
	/** 
	* @Title: sendNumberVerifyCodeSms 
	* @Description: 发送6位数字验证码，将验证码存储数据库(废弃)
	* @param @param mobile
	* @param @param type
	* @param @param userId
	* @param @return    设定文件 
	* @return boolean    返回类型 
	* @throws 
	* @author zhangrenjie 
	* @date 2017年8月14日 下午1:36:36 
	*/
//	public boolean sendNumberVerifyCodeSms(String mobile, int type, String userId);
	
	/** 
	* @Title: validateVerifyCode 
	* @Description: 校验验证码
	* @param @param mobile
	* @param @param type
	* @param @param code
	* @param @return    设定文件 
	* @return int    返回类型   1表示成功
	* @throws 
	* @author zhangrenjie 
	* @date 2017年8月14日 下午2:33:48 
	*/
	public int validateVerifyCode(String mobile, String type, String code);
	/** 
	* @Title: sendNumberVerifyCodeSms 
	* @Description: 发送6位数字验证码，将验证码存储数据库 
	* @param @param mobile
	* @param @param type
	* @param @param userId
	* @param @param content
	* @param @return    设定文件 
	* @return boolean    返回类型 
	* @throws 
	* @author zhangrenjie 
	* @date 2017年8月18日 上午10:24:19 
	*/
	public boolean sendNumberVerifyCodeSms(String mobile, int type, String userId, String content);

	boolean sendNumberVerifyCodeSms(String mobile, String type, String userId);
}